/*
 * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */
package com.sun.corba.se.impl.util;

import java.io.File;

/**
 * PackagePrefixChecker provides static utility methods for getting package prefixes.
 * @author M. Mortazavi
 */

public final class PackagePrefixChecker {

    private static final String PACKAGE_PREFIX = "org.omg.stub.";

    public static String packagePrefix() {
        return PACKAGE_PREFIX;
    }

    public static String correctPackageName(String p) {
        if (p == null)
            return p;
        if (hasOffendingPrefix(p)) {
            return PACKAGE_PREFIX + p;
        }
        return p;
    }

    public static boolean isOffendingPackage(String p) {
        return !(p == null) && (false || hasOffendingPrefix(p));
    }

    public static boolean hasOffendingPrefix(String p) {
        return (p.startsWith("java.") || p.equals("java")
        // || p.startsWith("com.sun.") || p.equals("com.sun")
        || p.startsWith("net.jini.") || p.equals("net.jini") || p.startsWith("jini.") || p.equals("jini") || p.startsWith("javax.") || p.equals("javax"));
    }

    public static boolean hasBeenPrefixed(String p) {
        return p.startsWith(packagePrefix());
    }

    public static String withoutPackagePrefix(String p) {
        if (hasBeenPrefixed(p))
            return p.substring(packagePrefix().length());
        else
            return p;
    }

}
